isLocationAccuracyReduced

Returns true when the user has granted location with Reduced Accuracy — i.e. the iOS 14+ "Precise Location" toggle is off.

This is independent of getPermissionStatus: a member can grant "While Using" or "Always" yet still leave Precise Location off, in which case the authorization status is GRANTED but iOS fuzzes the device location to ~1–5 km. Geofencing with small radii (typical facility radii of 50–250 m) is effectively non-functional under reduced accuracy, so startMonitoring() returns AFGeofencingResult.Failure and publishes PERMISSIONS_REDUCED_ACCURACY on Facilities.subscribeToStatus().

The value reflects the live CLLocationManager.accuracyAuthorization and updates when the user changes it in Settings; re-read it on launch and viewWillAppear rather than caching across sessions. Returns false when location has not been granted at all (there is no reduced state to report yet).

iOS (Swift)

if AFPermissions.shared.isLocationAccuracyReduced() {
showAlert("Enable Precise Location for accurate check-ins") {
AFCore.shared.facilities().openAppSettings()
}
}

Android exposes an equivalent isLocationAccuracyReduced() based on the coarse-vs-fine grant: on Android the reduced state is a coarse-only grant (the "Approximate" choice) rather than a runtime Precise toggle.